/**
 * 
 */
package com.feib.stms.batch.domain;

import java.math.BigDecimal;
import java.util.Date;



/**
 * @author Jimmy Liu
 *
 */
public class BasePaymentFileContent extends AuditEntity
{
	private static final long serialVersionUID = 6623610886883166699L;

	/**
	 * UPLOAD_FILE_PK 
	 */
	protected UploadFile uploadFile;

	/**
	 * 所屬券商(非分公司); 便利查詢;
	 */
	protected Group group;

	/**
	 * 存款帳號 999-999-9999999-9 分行別-科目別-序號-檢碼 
	 */
	protected String accountNo;

	/**
	 * 交割日期或扣帳日期<br/>
	 * 資料來源:檔案
	 */	
	protected Date deliveryDate;


	/**
	 * 淨付金額 <br/>
	 * 資料來源:檔案 
	 */	
	protected BigDecimal netPay;

	/**
	 * 淨收金額 <br/>
	 * 資料來源:檔案  
	 */
	protected BigDecimal netIncome;


	/**
	 * 帳號檢查碼<br/>
	 * 資料來源:檔案
	 */

	protected String accountNoChk;

	/**
	 * 金額檢查碼<br/>
	 * 資料來源:檔案 
	 */
	protected String amountChk;

	/**
	 * 處理類別<br/>
	 * 資料來源:檔案<br/>
	 * <ul><li>0.交割股款</li>
	 * <li>6.認購款</li>
	 * <li>Q.餘額查詢</li>
	 * <li>4.郵寄費及工本費</li>
	 * <li>5.未中籤退還款</li>
	 * <li>9.券商轉</li></ul>
	 */	
	protected String dealType;


	/**
	 * 客戶戶名<br/>
	 * 資料來源:檔案 
	 */
	protected String customerName;

	/**
	 * 證券代號<br/>
	 * 資料來源:檔案<br/>
	 * 餘額查詢時，放申購委託書編號 
	 */	
	protected String stockNo;


	/**
	 * 證券名稱<br/>
	 * 資料來源:檔案<br/> 
	 */
	protected String stockName;

	/**
	 * 扣款優先種類 <br/>
	 * 資料來源:檔案<br/>
	 * 扣款優先種類+扣款先後序號 (決定扣款優先順序) 
	 */	
	protected String chargebackPriority;

	/**
	 * 扣款先後序號<br/>
	 * 資料來源:檔案<br/> 
	 */
	protected String chargebackPriorityCode;

	/**
	 * 營業櫃員<br/>
	 * 資料來源:檔案<br/>
	 * 供驗資檔案查詢用
	 */
	protected String teller;


	/**
	 * 處理狀況代號<br/>
	 * 資料來源:檔案<br/>
	 * 通知時放"99"
	 */
	protected String dealResultCode;
	/**
	 * 處理狀況中文<br/>
	 * 顯示用<br/>
	 */
	protected String dealResultCodeName;
	
	// 
	/**
	 * 約定帳號<br/>
	 * batch用,畫面不顯示<br/>
	 */
	protected String preDesignatedAccount;
	

	/**
	 * 身份證號<br/>
	 * 資料來源:檔案<br/>亞證專用
	 */
	protected String customerId;
	
	/**
	 * 淨付金額檢查碼(系統計算)
	 */
	protected Long netPayChksum;
	
	/**
	 * 淨收金額檢查碼(系統計算)
	 */
	protected Long netIncomeChksum;
	
	/**
	 * 帳號檢查碼(系統計算)
	 */
	protected Long accountNoChksum;
	
	/**
	 * 身份證號檢查碼(系統計算)
	 */
	protected Long customerIdChksum;
	
	/**
	 * 淨付金額檢查碼(系統計算) + 淨收金額檢查碼(系統計算) + 帳號檢查碼(系統計算) + 身份證號檢查碼(系統計算)
	 */
	protected Long chksum;

	/**
	 * 券商代號<br/>
	 * 便利查詢
	 */
	protected String securitiesNo;
	
	/**
	 * 顯示用<br/>
	 * 查詢時，最後一頁總計使用
	 */
	protected Long recordCount;
	
	/**
	 * 顯示用-淨付筆數<br/>
	 * 查詢時，最後一頁總計使用
	 */
	protected Long netPayCount;
	
	/**
	 * 顯示用-淨收筆數<br/>
	 * 查詢時，最後一頁總計使用
	 */
	protected Long netIncomeCount;
	
	/**
	 * 顯示用-淨收金額-淨付金額<br/>
	 * 查詢時，最後一頁總計使用
	 */
	protected Long netIncomePayDiff;
	

	public String getAccountNo() {
		return accountNo;
	}

	public void setAccountNo(String accountNo) {
		this.accountNo = accountNo;
	}

	public String getAccountNoChk() {
		return accountNoChk;
	}

	public void setAccountNoChk(String accountNoChk) {
		this.accountNoChk = accountNoChk;
	}

	public String getAmountChk() {
		return amountChk;
	}

	public void setAmountChk(String amountChk) {
		this.amountChk = amountChk;
	}

	public String getChargebackPriority() {
		return chargebackPriority;
	}

	public void setChargebackPriority(String chargebackPriority) {
		this.chargebackPriority = chargebackPriority;
	}

	public String getChargebackPriorityCode() {
		return chargebackPriorityCode;
	}

	public void setChargebackPriorityCode(String chargebackPriorityCode) {
		this.chargebackPriorityCode = chargebackPriorityCode;
	}

	public String getCustomerId() {
		return customerId;
	}

	public void setCustomerId(String customerId) {
		this.customerId = customerId;
	}
	
	// 約定帳號
	public String getPreDesignatedAccount() {
		return preDesignatedAccount;
	}

	public void setPreDesignatedAccount(String preDesignatedAccount) {
		this.preDesignatedAccount = preDesignatedAccount;
	}
	
	public String getCustomerName() {
		return customerName;
	}

	public void setCustomerName(String customerName) {
		this.customerName = customerName;
	}

	public String getDealResultCode() {
		return dealResultCode;
	}

	public void setDealResultCode(String dealResultCode) {
		this.dealResultCode = dealResultCode;
	}

	public String getDealType() {
		return dealType;
	}

	public void setDealType(String dealType) {
		this.dealType = dealType;
	}

	public Date getDeliveryDate() {
		return deliveryDate;
	}

	public void setDeliveryDate(Date deliveryDate) {
		this.deliveryDate = deliveryDate;
	}

	public Group getGroup() {
		return group;
	}

	public void setGroup(Group group) {
		this.group = group;
	}

	public BigDecimal getNetIncome() {
		return netIncome;
	}

	public void setNetIncome(BigDecimal netIncome) {
		this.netIncome = netIncome;
	}

	public BigDecimal getNetPay() {
		return netPay;
	}

	public void setNetPay(BigDecimal netPay) {
		this.netPay = netPay;
	}

	public String getSecuritiesNo() {
		return securitiesNo;
	}

	public void setSecuritiesNo(String securitiesNo) {
		this.securitiesNo = securitiesNo;
	}

	public String getStockName() {
		return stockName;
	}

	public void setStockName(String stockName) {
		this.stockName = stockName;
	}

	public String getStockNo() {
		return stockNo;
	}

	public void setStockNo(String stockNo) {
		this.stockNo = stockNo;
	}

	public String getTeller() {
		return teller;
	}

	public void setTeller(String teller) {
		this.teller = teller;
	}

	public UploadFile getUploadFile() {
		return uploadFile;
	}

	public void setUploadFile(UploadFile uploadFile) {
		this.uploadFile = uploadFile;
	}

	public Long getAccountNoChksum() {
		return accountNoChksum;
	}

	public void setAccountNoChksum(Long accountNoChksum) {
		this.accountNoChksum = accountNoChksum;
	}

	public Long getChksum() {
		return chksum;
	}

	public void setChksum(Long chksum) {
		this.chksum = chksum;
	}

	public Long getCustomerIdChksum() {
		return customerIdChksum;
	}

	public void setCustomerIdChksum(Long customerIdChksum) {
		this.customerIdChksum = customerIdChksum;
	}

	public Long getNetIncomeChksum() {
		return netIncomeChksum;
	}

	public void setNetIncomeChksum(Long netIncomeChksum) {
		this.netIncomeChksum = netIncomeChksum;
	}

	public Long getNetPayChksum() {
		return netPayChksum;
	}

	public void setNetPayChksum(Long netPayChksum) {
		this.netPayChksum = netPayChksum;
	}

	public String getDealResultCodeName() {
		return dealResultCodeName;
	}

	public void setDealResultCodeName(String dealResultCodeName) {
		this.dealResultCodeName = dealResultCodeName;
	}
	
	public Long getRecordCount() {
		return recordCount;
	}

	public void setRecordCount(Long recordCount) {
		this.recordCount = recordCount;
	}

	public Long getNetPayCount() {
		return netPayCount;
	}

	public void setNetPayCount(Long netPayCount) {
		this.netPayCount = netPayCount;
	}

	public Long getNetIncomeCount() {
		return netIncomeCount;
	}

	public void setNetIncomeCount(Long netIncomeCount) {
		this.netIncomeCount = netIncomeCount;
	}

	public Long getNetIncomePayDiff() {
		return netIncomePayDiff;
	}

	public void setNetIncomePayDiff(Long netIncomePayDiff) {
		this.netIncomePayDiff = netIncomePayDiff;
	}


	
	
	@Override
	public String toString() {
		StringBuilder builder = new StringBuilder();
		builder.append("BasePaymentFileContent [accountNo=");
		builder.append(accountNo);
		builder.append(", deliveryDate=");
		builder.append(deliveryDate);
		builder.append(", netPay=");
		builder.append(netPay);
		builder.append(", netIncome=");
		builder.append(netIncome);
		builder.append(", accountNoChk=");
		builder.append(accountNoChk);
		builder.append(", amountChk=");
		builder.append(amountChk);
		builder.append(", dealType=");
		builder.append(dealType);
		builder.append(", customerName=");
		builder.append(customerName);
		builder.append(", stockNo=");
		builder.append(stockNo);
		builder.append(", stockName=");
		builder.append(stockName);
		builder.append(", chargebackPriority=");
		builder.append(chargebackPriority);
		builder.append(", chargebackPriorityCode=");
		builder.append(chargebackPriorityCode);
		builder.append(", teller=");
		builder.append(teller);
		builder.append(", dealResultCode=");
		builder.append(dealResultCode);
		builder.append(", customerId=");
		builder.append(customerId);
		builder.append(", securitiesNo=");
		builder.append(securitiesNo);
		builder.append("]");
		return builder.toString();
	}

}
